5a4564681c79a445d11d96c4c56fada7d90e9149,portal-impl/src/com/liferay/portlet/bookmarks/util/BookmarksIndexer.java,BookmarksIndexer,reindexEntries,#number#number#number#,196

Before Change


	protected void reindexEntries(long companyId, long groupId, long folderId)
		throws Exception {

		DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(
			BookmarksEntry.class, PACLClassLoaderUtil.getPortalClassLoader());

		Projection minEntryIdProjection = ProjectionFactoryUtil.min("entryId");
		Projection maxEntryIdProjection = ProjectionFactoryUtil.max("entryId");

		ProjectionList projectionList = ProjectionFactoryUtil.projectionList();

		projectionList.add(minEntryIdProjection);
		projectionList.add(maxEntryIdProjection);

		dynamicQuery.setProjection(projectionList);

		addReindexCriteria(dynamicQuery, groupId, folderId);

		List<Object[]> results = BookmarksEntryLocalServiceUtil.dynamicQuery(
			dynamicQuery);

		Object[] minAndMaxEntryIds = results.get(0);

		if ((minAndMaxEntryIds[0] == null) || (minAndMaxEntryIds[1] == null)) {
			return;
		}

		long minEntryId = (Long)minAndMaxEntryIds[0];
		long maxEntryId = (Long)minAndMaxEntryIds[1];

		long startEntryId = minEntryId;
		long endEntryId = startEntryId + DEFAULT_INTERVAL;

		while (startEntryId <= maxEntryId) {
			reindexEntries(
				companyId, groupId, folderId, startEntryId, endEntryId);

			startEntryId = endEntryId;
			endEntryId += DEFAULT_INTERVAL;
		}
	}

After Change



		final Collection<Document> documents = new ArrayList<Document>();

		ActionableDynamicQuery actionableDynamicQuery =
			new BaseActionableDynamicQuery() {

			@Override
			protected void addCriteria(DynamicQuery dynamicQuery) {
				Property property = PropertyFactoryUtil.forName("folderId");

				dynamicQuery.add(property.eq(folderId));
			}

			@Override
			protected void performAction(Object object) throws PortalException {
				BookmarksEntry entry = (BookmarksEntry)object;

				Document document = getDocument(entry);

				documents.add(document);
			}

		};

		actionableDynamicQuery.setBaseLocalService(
			BookmarksEntryLocalServiceUtil.getService());
		actionableDynamicQuery.setClass(BookmarksEntry.class);
		actionableDynamicQuery.setClassLoader(
			PACLClassLoaderUtil.getPortalClassLoader());
		actionableDynamicQuery.setGroupId(groupId);
		actionableDynamicQuery.setPrimaryKeyPropertyName("entryId");

		actionableDynamicQuery.performActions();

		SearchEngineUtil.updateDocuments(
			getSearchEngineId(), companyId, documents);